//特殊数组的特征值---1608
// 给你一个非负整数数组 nums 。如果存在一个数 x ，使得 nums 中恰好有 x 个元素 大于或者等于 x ，那么就称 nums 是一个 特殊数组 ，而 x 是该数组的 特征值 。
// 注意： x 不必 是 nums 的中的元素。
// 如果数组 nums 是一个 特殊数组 ，请返回它的特征值 x 。否则，返回 -1 。可以证明的是，如果 nums 是特殊数组，那么其特征值 x 是 唯一的 。



#include <stdio.h>
#include <string.h>
int specialArray(int* nums, int numsSize)
{
    int max  = nums[0];
    //找数组中的最大值
    for(int i = 0; i < numsSize; i++)
    {
        if(max < nums[i])
        max = nums[i];
    }

    for(int i = 0; i < max; i++)
    {
        int count = 0;
        for(int j = 0; j <= numsSize; j++)
        {
            if(nums[j] >= i)
            {
                count++;
            }
            
        }
        if(count == i)
        return i;
    }
    
    return -1;
}

int main()
{
    int num[] = {0,4,3,0,4};
    printf("%d\n",specialArray(num,sizeof(num)/4));

    return 0;
}